<?php
require_once 'config.php';

// Provjera da li je forma poslana metodom POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    exit("Nevažeći zahtjev.");
}

// Osnovni podaci o troškovniku
$broj_troskovnika = $_POST['broj_troskovnika'] ?? '';
$datum = $_POST['datum'] ?? '';
$napomena = $_POST['napomena'] ?? '';

// Dohvati ID naloga (poslanog putem skrivenog polja)
$id_nalog = isset($_POST['id_nalog']) ? intval($_POST['id_nalog']) : 0;

// Unos u glavnu tablicu nalog_troskovnik (provjerite postoji li stupac id_nalog)
$sql = "INSERT INTO nalog_troskovnik (id_nalog, broj_troskovnika, datum, napomena) VALUES (?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
if (!$stmt) {
    die("Priprema upita za nalog_troskovnik nije uspjela: " . $conn->error);
}
$stmt->bind_param("isss", $id_nalog, $broj_troskovnika, $datum, $napomena);
if (!$stmt->execute()) {
    die("Izvršenje upita za nalog_troskovnik nije uspjelo: " . $stmt->error);
}
$id_troskovnika = $conn->insert_id;
$stmt->close();

// ----------------- Radnici -----------------
if (isset($_POST['radnici']) && is_array($_POST['radnici'])) {
    foreach ($_POST['radnici'] as $row) {
        $id_radnika = (int)($row['id_radnika'] ?? 0);
        if ($id_radnika <= 0) continue;

        // Zamjena zareza s točkom i parsiranje u float
        $sati_str   = str_replace(',', '.', $row['sati']   ?? '0');
        $cijena_str = str_replace(',', '.', $row['cijena'] ?? '0');
        $ukupno_str = str_replace(',', '.', $row['ukupno'] ?? '0');

        $sati   = (float)$sati_str;
        $cijena = (float)$cijena_str;
        $ukupno = (float)$ukupno_str;

        $sql = "INSERT INTO troskovnik_radnici (id_troskovnika, id_radnika, sati, cijena, ukupno)
                VALUES (?, ?, ?, ?, ?)";
        $stmt = $conn->prepare($sql);
        if (!$stmt) {
            die("Priprema upita za troskovnik_radnici nije uspjela: " . $conn->error);
        }
        $stmt->bind_param("iiidd", $id_troskovnika, $id_radnika, $sati, $cijena, $ukupno);
        if (!$stmt->execute()) {
            die("Izvršenje upita za troskovnik_radnici nije uspjelo: " . $stmt->error);
        }
        $stmt->close();
    }
}

// ----------------- Vozila (sati) -----------------
if (isset($_POST['vozila']) && is_array($_POST['vozila'])) {
    foreach ($_POST['vozila'] as $row) {
        $id_vozila = (int)($row['id_vozila'] ?? 0);
        if ($id_vozila <= 0) continue;

        $sati_str   = str_replace(',', '.', $row['sati']   ?? '0');
        $cijena_str = str_replace(',', '.', $row['cijena'] ?? '0');
        $ukupno_str = str_replace(',', '.', $row['ukupno'] ?? '0');

        $sati   = (float)$sati_str;
        $cijena = (float)$cijena_str;
        $ukupno = (float)$ukupno_str;

        $sql = "INSERT INTO troskovnik_vozila (id_troskovnika, id_vozila, sati, cijena, ukupno)
                VALUES (?, ?, ?, ?, ?)";
        $stmt = $conn->prepare($sql);
        if (!$stmt) {
            die("Priprema upita za troskovnik_vozila (sati) nije uspjela: " . $conn->error);
        }
        $stmt->bind_param("iiidd", $id_troskovnika, $id_vozila, $sati, $cijena, $ukupno);
        if (!$stmt->execute()) {
            die("Izvršenje upita za troskovnik_vozila (sati) nije uspjelo: " . $stmt->error);
        }
        $stmt->close();
    }
}

// ----------------- Vozila (kilometri) -----------------
// Koristimo isto polje 'sati' za kilometre
if (isset($_POST['vozila_km']) && is_array($_POST['vozila_km'])) {
    foreach ($_POST['vozila_km'] as $row) {
        $id_vozila = (int)($row['id_vozila'] ?? 0);
        if ($id_vozila <= 0) continue;

        $kilometri_str = str_replace(',', '.', $row['sati']   ?? '0');
        $cijena_str    = str_replace(',', '.', $row['cijena'] ?? '0');
        $ukupno_str    = str_replace(',', '.', $row['ukupno'] ?? '0');

        $kilometri = (float)$kilometri_str;
        $cijena    = (float)$cijena_str;
        $ukupno    = (float)$ukupno_str;

        $sql = "INSERT INTO troskovnik_vozila (id_troskovnika, id_vozila, sati, cijena, ukupno)
                VALUES (?, ?, ?, ?, ?)";
        $stmt = $conn->prepare($sql);
        if (!$stmt) {
            die("Priprema upita za troskovnik_vozila (kilometri) nije uspjela: " . $conn->error);
        }
        $stmt->bind_param("iiidd", $id_troskovnika, $id_vozila, $kilometri, $cijena, $ukupno);
        if (!$stmt->execute()) {
            die("Izvršenje upita za troskovnik_vozila (kilometri) nije uspjelo: " . $stmt->error);
        }
        $stmt->close();
    }
}

// ----------------- Artikli -----------------
if (isset($_POST['artikli']) && is_array($_POST['artikli'])) {
    foreach ($_POST['artikli'] as $row) {
        $id_artikla = (int)($row['id_artikla'] ?? 0);
        if ($id_artikla <= 0) continue;

        $kolicina_str = str_replace(',', '.', $row['kolicina'] ?? '0');
        $cijena_str   = str_replace(',', '.', $row['cijena']   ?? '0');
        $ukupno_str   = str_replace(',', '.', $row['ukupno']   ?? '0');

        $kolicina = (float)$kolicina_str;
        $cijena   = (float)$cijena_str;
        $ukupno   = (float)$ukupno_str;

        $sql = "INSERT INTO troskovnik_artikli (id_troskovnika, id_artikla, kolicina, cijena, ukupno)
                VALUES (?, ?, ?, ?, ?)";
        $stmt = $conn->prepare($sql);
        if (!$stmt) {
            die("Priprema upita za troskovnik_artikli nije uspjela: " . $conn->error);
        }
        $stmt->bind_param("iiidd", $id_troskovnika, $id_artikla, $kolicina, $cijena, $ukupno);
        if (!$stmt->execute()) {
            die("Izvršenje upita za troskovnik_artikli nije uspjelo: " . $stmt->error);
        }
        $stmt->close();
    }
}

// ----------------- Usluge -----------------
if (isset($_POST['usluge']) && is_array($_POST['usluge'])) {
    foreach ($_POST['usluge'] as $row) {
        $id_usluge = (int)($row['id_usluge'] ?? 0);
        if ($id_usluge <= 0) continue;

        $kolicina_str = str_replace(',', '.', $row['kolicina'] ?? '0');
        $cijena_str   = str_replace(',', '.', $row['cijena']   ?? '0');
        $ukupno_str   = str_replace(',', '.', $row['ukupno']   ?? '0');

        $kolicina = (float)$kolicina_str;
        $cijena   = (float)$cijena_str;
        $ukupno   = (float)$ukupno_str;

        $sql = "INSERT INTO troskovnik_usluge (id_troskovnika, id_usluge, kolicina, cijena, ukupno)
                VALUES (?, ?, ?, ?, ?)";
        $stmt = $conn->prepare($sql);
        if (!$stmt) {
            die("Priprema upita za troskovnik_usluge nije uspjela: " . $conn->error);
        }
        $stmt->bind_param("iiidd", $id_troskovnika, $id_usluge, $kolicina, $cijena, $ukupno);
        if (!$stmt->execute()) {
            die("Izvršenje upita za troskovnik_usluge nije uspjelo: " . $stmt->error);
        }
        $stmt->close();
    }
}

// ----------------- Izračun rekapitulacije -----------------
$sum_radnici = 0;
if (isset($_POST['radnici']) && is_array($_POST['radnici'])) {
    foreach ($_POST['radnici'] as $row) {
        // Ponovno radimo zamjenu ',' -> '.' prije parsiranja
        $ukupno_str = str_replace(',', '.', $row['ukupno'] ?? '0');
        $sum_radnici += floatval($ukupno_str);
    }
}
$sum_vozila = 0;
if (isset($_POST['vozila']) && is_array($_POST['vozila'])) {
    foreach ($_POST['vozila'] as $row) {
        $ukupno_str = str_replace(',', '.', $row['ukupno'] ?? '0');
        $sum_vozila += floatval($ukupno_str);
    }
}
$sum_vozila_km = 0;
if (isset($_POST['vozila_km']) && is_array($_POST['vozila_km'])) {
    foreach ($_POST['vozila_km'] as $row) {
        $ukupno_str = str_replace(',', '.', $row['ukupno'] ?? '0');
        $sum_vozila_km += floatval($ukupno_str);
    }
}
$sum_artikli = 0;
if (isset($_POST['artikli']) && is_array($_POST['artikli'])) {
    foreach ($_POST['artikli'] as $row) {
        $ukupno_str = str_replace(',', '.', $row['ukupno'] ?? '0');
        $sum_artikli += floatval($ukupno_str);
    }
}
$sum_usluge = 0;
if (isset($_POST['usluge']) && is_array($_POST['usluge'])) {
    foreach ($_POST['usluge'] as $row) {
        $ukupno_str = str_replace(',', '.', $row['ukupno'] ?? '0');
        $sum_usluge += floatval($ukupno_str);
    }
}

$total = $sum_radnici + $sum_vozila + $sum_vozila_km + $sum_artikli + $sum_usluge;
$vozila_total = $sum_vozila + $sum_vozila_km;

$sql = "INSERT INTO troskovnik_rekapitulacija (id_troskovnika, radnici, vozila, artikli, usluge, ukupno)
        VALUES (?, ?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
if (!$stmt) {
    die("Priprema upita za rekapitulaciju nije uspjela: " . $conn->error);
}
$stmt->bind_param("iddddd", $id_troskovnika, $sum_radnici, $vozila_total, $sum_artikli, $sum_usluge, $total);
if (!$stmt->execute()) {
    die("Izvršenje upita za rekapitulaciju nije uspjelo: " . $stmt->error);
}
$stmt->close();

$conn->close();

// Preusmjerite korisnika na listu naloga s porukom
header("Location: lista_naloga.php?message=" . urlencode("Troškovnik je uspješno spremljen. ID: " . $id_troskovnika));
exit();
